var table = "";
var codeListTable = "";
var parentCode = "";
var detailButton = "";
var sortCode_ = "";
// 模糊查询url
var likeUrl = "/dqueryCodeSort";
// 模糊触发长度
var minChars = 1;
$(function() {
	parentCode = request.QueryString("parentCode");// 点击左侧菜单传过来的按钮父节点
	resultCodeSort = postAsyncAjax('/findCodeSortMapByCondition');
	table = $("#codeSortList");
	initGrid();// 初始化表格
	codeListTable = $("#codeList");
	initReload();
	initCodeListGrid();// 初始化表格
	// 初始化自动补全组件
	dynamicQuery(likeUrl);
});

// 动态查询js，赋值自动补全属性
function dynamicQuery(url) {

	// 声明自动补全数组
	var dqueryBoxs = [];

	// 获取需要自动补全的集合
	var dquery = $(".dquery");

	// 遍历
	for (var i = 0; i < dquery.length; i++) {

		// 获取需要动态下拉的组件 jq对象
		var dqueryBox = $(dquery[i]);

		// 放入数组中 以name属性未命名
		dqueryBoxs[dqueryBox.attr("name")] = new Awesomplete(dqueryBox[0]);

		// 触发长度
		dqueryBoxs[dqueryBox.attr("name")].minChars = minChars;
		// 显示条数
		dqueryBoxs[dqueryBox.attr("name")].maxItems = 10;

		// 绑定时间
		dqueryBox.on('input', function() {
			// 获取输入的值
			var value = $(this).val();

			// 输入值长度大于一的时候触发

			if (value.length > minChars - 1) {
				var data = new Object();

				var name = $(this).attr("name");

				data[name] = value;

				$.ajax({
					type : "POST",
					url : url,
					data : data,
					async : true,
					success : function(msg) {

						// var awesomplete = new Awesomplete(this);

						if (msg.list) {

							var dataObj = [];
							msg.list.forEach(function(v) {
								dataObj.push(v[name]);
							});
							// 设置对应数据
							dqueryBoxs[name].list = dataObj;

						}

					},
					error : function(request) {
						// alert("加载超时！");
					}
				});

			}
		});
	}

}

function initGrid() {

	var tableheight = $(window).height() - $('#searchForm').outerHeight();
	// 权限按钮
	var param = limitButton(parentCode);
	for ( var i in param) {
		if(param[i].text=="详情"){
			detailButton = param[i].code;
		}
	}
	table.datagrid({
		iconCls : 'icon-ok',
		pageSize : 20,
		height : tableheight - 60,
		pageList : [ 20, 40, 60, 80 ],
		striped : true,
		collapsible : false,
		remoteSort : true,// 服务器端排序
		fitColumns : true,
		singleSelect : true,
		showFooter : true,
		columns : [ [ {
			field : 'id',
			checkbox : true,
			hidden : true
		}, {
			field : 'name',
			title : '分类名称',
			width : 60,
			rowspan : 2,
			align : 'center'
		}, {
			field : 'code',
			title : '分类代码',
			width : 60,
			rowspan : 2,
			align : 'center'
		}, {
			field : 'cteated',
			title : '创建时间',
			width : 60,
			rowspan : 2,
			align : 'center',
			formatter : function(value, row, index) {
				return (new Date(row.cteated)).Format("yyyy-MM-dd hh:mm:ss");
			}
		} ] ],
		toolbar:param,
		pagination : true,
		rownumbers : true,
		onBeforeLoad : function(param) {

			var parameter = new Object();
			parameter = serializeJson($('#searchForm'));
			parameter.page = param.page;
			parameter.rows = param.rows;
			// 模糊查询字段
			parameter.likeQueryReflect = "name,code";
			var data = postAsyncAjax("/findCodeSortByPage", parameter);
			var dataGridData = new Object();
			dataGridData.rows = data.rows;// 总记录数
			dataGridData.total = data.total;// 总记录数
			table.datagrid('loadData', dataGridData);
		}
	});

	
}

function initCodeListGrid() {
	// 权限按钮
	var param = limitButton(detailButton);
	codeListTable.datagrid({
		iconCls : 'icon-ok',
		pageSize : 20,
		pageList : [ 20, 40, 60, 80 ],
		striped : true,
		collapsible : false,
		remoteSort : true,// 服务器端排序
		fitColumns : true,
		singleSelect : true,
		showFooter : true,
		columns : [ [ {
			field : 'id',
			checkbox : true,
			hidden : true
		}, {
			field : 'name',
			title : '分类名称',
			width : 60,
			rowspan : 2,
			align : 'center'
		}, {
			field : 'code',
			title : '分类代码',
			width : 60,
			rowspan : 2,
			align : 'center'
		}, {
			field : 'sortCode',
			title : '字典代码',
			width : 60,
			rowspan : 2,
			align : 'center'
		}, {
			field : 'cteated',
			title : '创建时间',
			width : 60,
			rowspan : 2,
			align : 'center',
			formatter : function(value, row, index) {
				return (new Date(row.cteated)).Format("yyyy-MM-dd hh:mm:ss");
			}
		} ] ],
		pagination : true,
		rownumbers : true,
		onBeforeLoad : function(param) {

			var parameter = new Object();
			parameter.page = param.page;
			parameter.rows = param.rows;
			parameter.sortCode = sortCode_;
			var data = postAsyncAjax("/selectByCode", parameter);
			var dataGridData = new Object();
			dataGridData.rows = data.rows;// 总记录数
			dataGridData.total = data.total;// 总记录数
			codeListTable.datagrid('loadData', dataGridData);
		},
	
	toolbar:param

	});
}

addCodeBean = function() {

	var rows = table.datagrid('getSelected');
	if (null == rows) {
		$.messager.alert("消息提示", "至少选择一条记录", "warning");
		return;
	}
	var code = rows.code;
	var typeName = rows.name;

	var url = "/view/page/code/addCode.html?id=1&&sortCode=" + code
			+ "&&typeName=" + typeName;
	topWindow(url, "新增", {
		width : 698,
		height : 405
	});
}

updateCodeBean = function() {
	var rows = codeListTable.datagrid('getSelected');
	if (null == rows) {
		$.messager.alert("消息提示", "至少选择一条记录", "warning");
		return;
	}

	var url = "/view/page/code/updateCode.html?id=" + rows.id;
	topWindow(url, "修改", {
		width : 698,
		height : 405
	});
}

delCodeBean = function(url) {
	var rows = codeListTable.datagrid('getSelected');
	if (null == rows) {
		$.messager.alert("消息提示", "至少选择一条记录", "warning");
		return;
	}
	var id = rows.id;
	$.messager.confirm('确认对话框', '确认删除？', function(r) {
		if (r) {
			var data = postAsyncAjax(url, {"id" : id});
			if (data.returnCode == "00") {
				top.showMessage("删除成功!");
				gridReload("codeList");
			}else{
				top.showMessage("<font color='red'>" + msg.returnMsg  + "</font>!");
			}
		}
	});
}

/** 添加按钮执行操作 */
addBean = function(uri) {
	var url = uri + "?id=1";
	topWindow(url, "新增", {
		width : 500,
		height : 300
	});
}

detail = function(param) {
	var codeListPanel = $("#codeListPanel");
	codeListPanel.layout('expand', 'south');
	var rows = table.datagrid('getSelected');
	if (null == rows) {
		$.messager.alert("消息提示", "至少选择一条记录", "warning");
		return;
	}
	var code = rows.code;
	// 分类code
	sortCode_ = code;
	var parameter = new Object();
	parameter.page = 1;
	parameter.rows = 20;
	parameter.sortCode = code;

	var data = postAsyncAjax("/selectByCode", parameter);
	var dataGridData = new Object();
	dataGridData.rows = data.rows;// 总记录数
	dataGridData.total = data.total;// 总记录数
	codeListTable.datagrid('loadData', dataGridData);

}

/** 修改按钮执行操作 */
updateBean = function(uri) {
	var rows = table.datagrid('getSelected');
	if (null == rows) {
		$.messager.alert("消息提示", "至少选择一条记录", "warning");
		return;
	}
	var url = uri + "?id=" + rows.id;
	topWindow(url, "修改", {
		width : 578,
		height : 354
	});
}

/** 删除按钮执行操作 */
delBean = function(uri) {
	var rows = table.datagrid('getSelected');
	if (null == rows) {
		$.messager.alert("消息提示", "至少选择一条记录", "warning");
		return;
	}
	var id = rows.id;
	$.messager.confirm('确认对话框', '确认删除？', function(r) {
		if (r) {
			var data = postAsyncAjax(uri, {
				"id" : id
			});
			if (data.returnCode == "00") {
				top.showMessage("删除成功!");
				gridReload("codeSortList");
			}
		}
	});
}

initReload = function() {
	$("#btn").click(function() {
		table.datagrid("reload");
	});
}
